
import { asyncRoutes, constantRoutes } from '@/router'
// 这里是用来处理用户权限的vuex共享数据
const state = {
  // 存放最后生成的有权限路由
  routes: []
}
const mutations = {
  // 可以修改 state
  setRoutes(state, routes) {
    state.routes = [
      ...constantRoutes, ...routes
    ]
  }
}
const actions = {
  // 筛选有权限的路由
  filterRoutes(context, menus) {
    // 1. 用户的权限标记 被调用时可以传入, menus
    // 2. 所有的动态路由
    // 遍历所有的动态路由, 如果name 存在于权限标记中, 就留下, 如果不存在, 要排除
    // 过滤路由列表, 只有 menus 个人权限标识数组中包含你的name, 才可以留下,否则淘汰
    const routes = asyncRoutes.filter(item => menus.includes(item.name))
    // console.log('vuex 当中筛选权限', routes)

    // 调用mutations传入过滤的权限路由
    context.commit('setRoutes', routes)
    // 追加数据准备追加路由
    return routes
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
